1. Field of the Invention
The present invention relates to providing an interrupt signal to a host system processor unit to indicate that an information packet being received from a communications network requires processing.
2. Description of the Related Art
A great deal of information is transferred over communications networks. Typically, host computing systems, such as personal computers, operate as nodes on a communications network. Each node is capable of receiving information from the network and transmitting information onto the network.
Information is transferred over a communications network in information packets. The organization of information in an information packet, as well as the procedures for forming and combining information packets, are dictated by a network operating system protocol. There are many different protocols in existence. In fact, information frames that correspond to different protocols can coexist on the same communications network.
In order for a node to receive and transmit information packets, it is equipped with a network peripheral. The network peripheral is responsible for transferring information packets between the communications network and the host system.
A processor unit in the host system assists in the transmission of an information packet by constructing the information packet and passing it to the network peripheral. The processor unit assists in the reception of an information packet by retrieving the information packet from the network peripheral and processing it in accordance with a network operating system protocol.
The processor unit performs many of its transmission and reception functions in response to instructions from an interrupt service routine for the network peripheral. When a received information packet requires processing, an interrupt may be issued to the host system by the network peripheral. The interrupt has traditionally been issued after either all of the bytes in an information packet or a fixed number of bytes in an information packet have been received by the network peripheral.
In response to a packet reception interrupt, the processor unit enters the interrupt service routine and executes the necessary instructions for assisting in the packet reception process. Upon responding to the interrupt, the processor unit ceases the operations that it is presently performing and saves the entire status of the host system.
The time period from the network peripheral asserting an interrupt to the processor unit beginning to execute the interrupt service routine is referred to as interrupt latency. Interrupt latency can be a considerable amount of time, approximately 30 .mu.s-45 .mu.s in a personal computer. Accordingly, it is beneficial for the processor unit to only receive one interrupt for the reception of an incoming information packet.
It is also beneficial to reduce the utilization of the processor unit in executing the interrupt service routine. If the processor unit receives an interrupt too early in a packet's reception, then the processor unit will process the received portion of the packet and sit idly while the rest of the packet is received by the network peripheral. Decreasing the time that the processor unit has to wait idly in an interrupt service routine allows the processor unit more time to perform other useful tasks, such as executing instructions in application programs.
Asserting an interrupt after an information packet has been completely received by a network peripheral ensures that only a single packet reception interrupt is issued for a received information packet. As a result, only a single interrupt latency must be incurred in the processing of the incoming packet. Additionally, the entire information packet is ready to be processed when the host processor unit begins executing the interrupt service routine. This provides for a reduction in the utilization of the processor unit, since there is little, if any, idle time.
However, waiting until after an incoming information packet has been completely received to assert a packet reception interrupt causes the processing of the information packet to be delayed. Such delay includes the interrupt latency time and/or the time required for the processor unit to execute the interrupt service routine. It is desirable to avoid such delay.
The overall performance of a host system as a node is dependent on how rapidly information packets can be processed once they are detected by the network peripheral. A processor unit's prompt processing of incoming information packets enables a host system to quickly assemble and transmit any information packets that are to be sent in response to received information packets. Further, prompt processing of incoming information packets decreases the amount of memory that is required to be used for storing received information packets that are waiting to be processed.
In order to avoid delay in the processing of incoming information packets, reception indicators in network peripherals have been developed to overlap the reception of an incoming information packet with the interrupt latency. These reception indicators do not wait until after the information packet has been fully received to assert an interrupt. These reception indicators issue an interrupt at a predetermined time before an incoming information packet has been completely received by the network peripheral. In such reception indicators, the predetermined time is approximately equal to the host system's interrupt latency.
As a result, the processor unit is able to begin executing the interrupt service routine for the network peripheral at approximately the same time that the information packet has been fully received by the network peripheral. Unfortunately, the processor unit may still have to execute a significant portion of the interrupt service routine subsequent to the information packet's reception having been completed. Such reception indicators are described in U.S. Pat. No. 5,412,782 ("'782 Patent") and U.S. Pat. No. 5,307,459 ("'459 Patent").
The reception indicator disclosed in the '782 Patent provides for an early receive interrupt to be generated by a network peripheral after a predetermined number of bytes of an incoming information packet have been received. The predetermined number of bytes is programmed into an early receive threshold register in the network peripheral by a host system's user. In response to the early receive interrupt, a host processor unit begins executing an interrupt service routine for the network peripheral.
The interrupt service routine instructs the host processor unit to determine if the network peripheral is still receiving any portion of the same incoming information packet. If the information packet has not been fully received, the interrupt service routine instructs the host processor unit to determine the expected total number of bytes in the information packet and program a new value into the early receive threshold register. The new value is equal to the expected size of the incoming information packet minus the number of information packet bytes that the network peripheral can receive during the host system's interrupt latency. After reprogramming the early receive threshold register, the host processor unit processes the received portion of the information packet and then exits the interrupt service routine.
Once the network peripheral receives the number of information packet bytes that has been newly programmed into the early receive threshold register, the early receive interrupt is generated again for the same information packet. Once again, an interrupt latency delay is incurred by the host system before the host processor unit begins executing the interrupt service routine. Ideally, the entire packet has been received by the network peripheral at the time the processor unit begins executing the interrupt service routine for the second time. This allows the processor unit to complete its processing of the information packet without any further interrupts being needed.
In the reception indicator circuit of the '782 patent, the host processor unit is not forced to be idly trapped in the interrupt service routine, while the network peripheral completes a packet reception. In fact, the host processor is able to leave the interrupt service routine until the information packet has been fully received.
However, the host processor unit may have to respond to two interrupts for the processing of a single information packet. As stated above, the significant amount of time wasted during an interrupt latency makes it undesirable to have a host processor unit respond to more than one interrupt for a single information packet reception. The host processor's time could be better spent performing other tasks in the host system than responding to a second interrupt for the same information packet reception.
The reception indicator disclosed in the '459 Patent provides for a single interrupt to be issued for an incoming information packet reception. The interrupt is issued at an interrupt latency time prior to the end of the information packet's reception. Accordingly, the interrupt latency is overlapped with the reception of the incoming packet to reduce the utilization of the host system's processor unit.
However, the reception indicator in the '459 patent only provides such an interrupt for information packets that adhere to a fixed number of network operating system protocols, which cannot be set by the host system's user. If an information packet conforms to the Institute of Electrical and Electronic Engineers ("IEEE") 802.3 network standard, the reception indicator in the '459 Patent is able to provide a reception interrupt as described above, regardless of the packet's protocol. If the information packet is not an IEEE 802.3 packet, the reception indicator in the '459 Patent does not provide for overlapping the interrupt latency time with the reception of the incoming information packet, unless the packet conforms to a single predetermined protocol type.
This is a notable limitation, since information packets on a single communications network may presently conform to many different protocols. Further, new protocols may become popular as time passes.
Accordingly, it is desirable for a network peripheral to provide only a single interrupt for an incoming information packet's reception. Moreover, the interrupt should be provided so that both interrupt latency and processing of the incoming packet are overlapped with the incoming packet's reception. It is further desirable for the network peripheral to be able to provide such an interrupt for information packets that conform to a user specified network operating system protocol. It is yet more desirable for the network peripheral to be able to provide such an interrupt for a plurality of programmable network operating system protocols. It is also desirable for the network peripheral to provide such an interrupt, so that a processor unit does not have to remain idle during the execution of an interrupt service routine for processing an incoming information packet.